package com.financing.platform.vo;

import com.financing.platform.dto.FpProjectRabate;
import com.financing.platform.dto.ProductAttachmentDTO;
import com.financing.platform.dto.ProjectExpandDTO;
import org.apache.commons.lang.StringUtils;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author lisu

 */
public class ProductVO extends BaseVO {

	private static final long serialVersionUID = 1004897266411554036L;

	private Integer id;//产品id
	private String name;//产品名称
	private String type;//产品类型
	private String saleStatus;//销售状态
	private int dueTime;//产品期限
	private String pDueTimeDes;//产品期限描述
	private String comment;//产品详情
	private BigDecimal issuingScale;//发行规模
	private BigDecimal allIssuingScale;//发行总规模
	private BigDecimal minimumAmount;//起购金额
	private BigDecimal expectSaleAmount;//预期销售金额
	private String pLevel;//产品等级AAA,AA,A
	private String paymentInterestType;//付息方式
	private String publicArea;//发行地区
	private String pBelongArea;//所属地区
	private String investType;//投资类型&发行领域
	private String pRecruitmentSummary;//募集进度
	private String pImageUrl;//产品图片地址
	private String pSizeRatioType;//大小配比类型(01:小额畅打,02:已配出小额,03:严格配比,04:全大额)
	private String pSizeRatioExplain;//大小配比说明
	private String summary;//产品详细
	private String investOwner;//发行机构
	private Date saleDateStart;// P_SALE_TIME_START //正式销售日期
	private String productLeader;//产品负责人
	private String productLeaderMobile;//产品负责人手机号

	/**
	 * 产品总销售额度
	 */
	private BigDecimal allSubscriptionAmount;

	/**
	 * 附件
	 */
	private List<ProductAttachmentDTO>  attachmentList;


	/**
	 * 产品相关信息
	 */
	private List<FpProjectRabate> rebateList;

	/**
	 * 产品扩信息
	 */
	private ProjectExpandDTO projectExpandDTO;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public String getSaleStatus() {
		return saleStatus;
	}

	public void setSaleStatus(String saleStatus) {
		this.saleStatus = saleStatus;
	}

	public int getDueTime() {
		return dueTime;
	}

	public void setDueTime(int dueTime) {
		this.dueTime = dueTime;
	}

	public String getComment() {
		return comment;
	}

	public void setComment(String comment) {
		this.comment = comment;
	}

	public BigDecimal getIssuingScale() {
		return issuingScale;
	}

	public void setIssuingScale(BigDecimal issuingScale) {
		this.issuingScale = issuingScale;
	}

	public BigDecimal getAllIssuingScale() {
		return allIssuingScale;
	}

	public void setAllIssuingScale(BigDecimal allIssuingScale) {
		this.allIssuingScale = allIssuingScale;
	}

	public BigDecimal getMinimumAmount() {
		return minimumAmount;
	}

	public void setMinimumAmount(BigDecimal minimumAmount) {
		this.minimumAmount = minimumAmount;
	}

	public BigDecimal getExpectSaleAmount() {
		return expectSaleAmount;
	}

	public void setExpectSaleAmount(BigDecimal expectSaleAmount) {
		this.expectSaleAmount = expectSaleAmount;
	}

	public String getpLevel() {
		return pLevel;
	}

	public void setpLevel(String pLevel) {
		this.pLevel = pLevel;
	}

	public String getPaymentInterestType() {
		return paymentInterestType;
	}

	public void setPaymentInterestType(String paymentInterestType) {
		this.paymentInterestType = paymentInterestType;
	}

	public String getPublicArea() {
		return publicArea;
	}

	public void setPublicArea(String publicArea) {
		this.publicArea = publicArea;
	}

	public String getInvestType() {
		return investType;
	}

	public void setInvestType(String investType) {
		this.investType = investType;
	}

	public String getpRecruitmentSummary() {
		return pRecruitmentSummary;
	}

	public void setpRecruitmentSummary(String pRecruitmentSummary) {
		this.pRecruitmentSummary = pRecruitmentSummary;
	}

	public String getpImageUrl() {
		return pImageUrl;
	}

	public void setpImageUrl(String pImageUrl) {
		this.pImageUrl = pImageUrl;
	}

	public String getpSizeRatioType() {
		return pSizeRatioType;
	}

	public void setpSizeRatioType(String pSizeRatioType) {
		this.pSizeRatioType = pSizeRatioType;
	}

	public String getpSizeRatioExplain() {
		return pSizeRatioExplain;
	}

	public void setpSizeRatioExplain(String pSizeRatioExplain) {
		this.pSizeRatioExplain = pSizeRatioExplain;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public List<FpProjectRabate> getRebateList() {
		return rebateList;
	}

	public void setRebateList(List<FpProjectRabate> rebateList) {
		this.rebateList = rebateList;
	}

	public List<ProductAttachmentDTO> getAttachmentList() {
		return attachmentList;
	}

	public void setAttachmentList(List<ProductAttachmentDTO> attachmentList) {
		this.attachmentList = attachmentList;
	}

	public String getSummary() {
		return summary;
	}

	public void setSummary(String summary) {
		this.summary = summary;
	}

	public String getInvestOwner() {
		return investOwner;
	}

	public void setInvestOwner(String investOwner) {
		this.investOwner = investOwner;
	}

	public Date getSaleDateStart() {
		return saleDateStart;
	}

	public void setSaleDateStart(Date saleDateStart) {
		this.saleDateStart = saleDateStart;
	}

	public BigDecimal getAllSubscriptionAmount() {
		return allSubscriptionAmount;
	}

	public void setAllSubscriptionAmount(BigDecimal allSubscriptionAmount) {
		this.allSubscriptionAmount = allSubscriptionAmount;
	}

	public String getProductLeader() {
		return productLeader;
	}

	public void setProductLeader(String productLeader) {
		this.productLeader = productLeader;
	}

	public String getProductLeaderMobile() {
		return productLeaderMobile;
	}

	public void setProductLeaderMobile(String productLeaderMobile) {
		this.productLeaderMobile = productLeaderMobile;
	}

	public ProjectExpandDTO getProjectExpandDTO() {
		return projectExpandDTO;
	}

	public void setProjectExpandDTO(ProjectExpandDTO projectExpandDTO) {
		this.projectExpandDTO = projectExpandDTO;
	}

	public String getpBelongArea() {
		return pBelongArea;
	}

	public void setpBelongArea(String pBelongArea) {
		this.pBelongArea = pBelongArea;
	}

	public String getpDueTimeDes() {
		if(StringUtils.isBlank(pDueTimeDes)){
			return dueTime+"个月";
		}
		return pDueTimeDes;
	}

	public void setpDueTimeDes(String pDueTimeDes) {
		this.pDueTimeDes = pDueTimeDes;
	}
}